Syntactic Abstraction in Scheme

نویسندگان

  • R. Kent Dybvig
  • Robert Hieb
  • Carl Bruggeman
چکیده

Naive program transformations can have surprising e ects due to the interaction between introduced identi er references and previously existing identi er bindings, or between introduced bindings and previously existing references. These interactions can result in the inadvertent binding, or capturing, of identi ers. A further complication results from the fact that the transformed program may have little resemblance to the original program, making correlation of source and object code di cult. We address both the capturing problem and the problem of source-object code correlation. Previous approaches to the capturing problem have been both inadequate and overly restrictive, and the problem of source-object code correlation has been largely unaddressed. Our approach is based on a new algorithm for implementing syntactic transformations along with a new representation for syntactic expressions. It allows the programmer to de ne program transformations using an unrestricted, general-purpose language, while at the same time it helps the programmer avoid capturing problems and maintains a correlation between the original code and the transformed code.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

First-class C Contexts in Cinquecento

Cinquecento is a new functional language designed for debugging and other analysis of software systems comprised of concurrently running C programs. The key innovations of Cinquecento are a first-class abstraction that can represent a C program in execution, a C-based syntactic interface to this abstraction, and language mechanisms for tailoring new instances of the abstraction to unanticipated...

متن کامل

Syntactic Abstraction : The syntax - case expander ∗

When writing computer programs, certain patterns arise over and over again. For example, programs must often loop through the elements of arrays, increment or decrement the values of variables, and perform multi-way conditionals based on numeric or character values. Programming language designers typically acknowledge this fact by including special-purpose syntactic constructs that handle the m...

متن کامل

Syntactic Abstraction : The syntax - case expander ∗

When writing computer programs, certain patterns arise over and over again. For example, programs must often loop through the elements of arrays, increment or decrement the values of variables, and perform multi-way conditionals based on numeric or character values. Programming language designers typically acknowledge this fact by including special-purpose syntactic constructs that handle the m...

متن کامل

An annotation scheme for Persian based on Autonomous Phrases Theory and Universal Dependencies

A treebank is a corpus with linguistic annotations above the level of the parts of speech. During the first half of the present decade, three treebanks have been developed for Persian either originally or subsequently based on dependency grammar: Persian Treebank (PerTreeBank), Persian Syntactic Dependency Treebank, and Uppsala Persian Dependency Treebank (UPDT). The syntactic analysis of a sen...

متن کامل

Patterns in Ontology Engineering: Classification of Ontology Patterns

In Software Engineering, patterns are an accepted way to facilitate and support reuse. This paper focuses on patterns in the field of Ontology Engineering and proposes a classification scheme for ontology patterns. The scheme divides ontology patterns into five levels: Application Patterns, Architecture Patterns, Design Patterns, Semantic Patterns, and Syntactic Patterns. Semantic and Syntactic...

متن کامل

Bilingual Hebrew-English Generation of Possessives and Partitives: Raising the Input Abstraction Level

Syntactic realization grammars have traditionally attempted to accept inputs with the highest possible level of abstraction, in order to facilitate the work of the components (sentence planner) preparing the input. Recently, the search for higher abstraction has been, however, challenged (E1hadad and Robin, 1996)(Lavoie and Rambow, 1997)(Busemann and Horacek, 1998). In this paper, we contribute...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Lisp and Symbolic Computation

دوره 5  شماره 

صفحات  -

تاریخ انتشار 1992